Identifying callers

ABSTRACT

Identifying a caller includes establishing, by a service provider, a connection over a computer network with a user device and accessing information enabling determination of a location of the user. A request to place a call to a call recipient is received from the user and a pool of temporary telephone numbers is accessed. Based on the location of the user, a temporary telephone number from the pool of temporary telephone numbers is selected. The temporary telephone number is associated with the call, the call is initiated to the call recipient, and information sufficient to identify the temporary telephone number is provided in call information sent to the call recipient.

CROSS REFERENCE TO RELATED APPLICATIONS

The present application claims priority to U.S. Provisional ApplicationNo. 60/885,548, filed Jan. 18, 2007, the contents of which areincorporated herein by reference in their entirety.

TECHNICAL FIELD

This disclosure relates to identifying and assigning correct locationinformation to callers in a communications system.

BACKGROUND

The Emergency Services system (E9-1-1) in North America is currently,and for the foreseeable future a service that is closely connected tothe existing Public Switched Telephone Network (PSTN). Newcommunications services (e.g., a cellular system or an internet protocol(IP) system) are being employed that differ from the PSTN and requirethe ability to communicate with Emergency Services. Techniques have beendeveloped to enable new communication services to interface with thecurrent Emergency Services system.

SUMMARY

In one aspect, a connection is established by a service provider over acomputer network with a user device used by a user and a location of theuser is determined. A request to place a call to a call recipient isreceived from the user and a pool of temporary telephone numbers isaccessed. Based on the location of the user, a temporary telephonenumber is selected from among the pool of temporary telephone numbers.The temporary telephone number is associated with the user, the call isinitiated to the call recipient, and information sufficient to identifythe selected temporary telephone number is provided in call informationsent to the call recipient.

Implementations may include one or more of the following features. Forexample, a second call may be received from the call recipient placed tothe temporary telephone number, and information associated with thetemporary telephone number may be accessed. The information may enabledetermination of a temporary user associated with the temporarytelephone number. The user may be identified based on the informationthat may enable determination of a temporary user associated with thetemporary telephone number, and the second call may be connected to theidentified user.

In some implementations, the information associated with the temporarytelephone number may enable determination of a method of connecting thesecond call to the identified user. In such implementations, a method ofconnecting the second call to the identified user may be determinedbased on the information that may enable determination of the method ofconnecting the second call to the identified user, and the second callmaybe connected to the identified user using the determined method.

Information sufficient to identify the selected temporary telephonenumber may be provided in call information sent to the call recipient toenable the call recipient to determine the location of the user. Thelocation of the user may be a current location of the user that isremote from a location where the user typically connects to the serviceprovider.

In some implementations, the temporary telephone number may beassociated with the user during the connection to the service provider.In such implementations, association of the temporary telephone numberwith the user may be maintained until the user disconnects from theservice provider. In further implementations, the user may be a firstuser, a request to place a second call from a second user to a secondcall recipient may be received, and a location of the second user may bedetermined. The second user may be different than the first user. Basedon the location of the second user, the temporary telephone number maybe selected from among the pool of temporary telephone numbers, thetemporary telephone number may be associated with the second user, thesecond call may be initiated to the second call recipient, and thetemporary telephone number may be provided in call information sent tothe second call recipient. The location of the second user may beassociated with the same geographic region as the location of the firstuser.

In some implementations, a third call may be received from the secondcall recipient placed to the temporary telephone number, and informationassociated with the temporary telephone number may be accessed. Theinformation may enable determination of a temporary user associated withthe temporary telephone number. In such implementations, the second usermay be identified based on the information that may enable determinationof a temporary user associated with the temporary telephone number, andthe third call may be connected to the second user.

In some implementations, the information associated with the temporarytelephone number may enable determination of a method of connecting thethird call to the second user, a method of connecting the third call tothe identified user may be determined based on the information that mayenable determination of the method of connecting the third call to thesecond user, and the third call may be connected to the second userusing the determined method.

The temporary telephone number may be a telephone number in a publicswitched telephone network, and the pool of temporary telephone numbersmay include at least one telephone number for each geographic regionserviced by the service provider.

In some implementations, user input may be received from the userindicating the location of the user. A location key may be associatedwith the user, and the location key may be sent to the user such thatsubsequent communications with the user include the location key. Acommunication may be received from the user, that includes a locationkey identifying the location of the user.

In some implementations, the call may be a call for emergency servicesand the call recipient may be a public safety access point. In suchimplementations, the information sufficient to identify the selectedtemporary telephone number provided in call information sent to the callrecipient may enable the public safety access point to determine thelocation of the user and may enable the user to receive a return callfrom the public safety access point.

Selecting and associating may be conditioned on the call being a callfor emergency services, and the service provider may be a voice overinternet protocol service provider.

Implementations of the described techniques may include hardware, amethod or process, or computer software on a computer-accessible medium.The details of one or more implementations are set forth in theaccompanying drawings and the description below.

Other features will be apparent from the description and drawings.

DESCRIPTION OF DRAWINGS

FIG. 1 is a block diagram of a communications system configured toidentify users when no or only ambiguous identity information isavailable.

FIG. 2 is a flow chart of a process for determining a location key for auser device in a communications system.

FIG. 3 is a flow chart of a process for assigning a temporary telephonenumber to a user device in a communications system.

FIG. 4 is a flow chart of another process for assigning a temporarytelephone number to a user device in a communications system.

FIG. 5 a block diagram of a communications system configured to handleemergency services communications.

FIG. 6 is a flow chart of a process for handling an emergency servicescall in a communications system.

FIG. 7 is a flow chart of another process for handling an emergencyservices call in a communications system.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION

When a caller establishes a connection with or places a call to aservice provider, the service provider may receive informationindicating the current service location from the caller or otherwisedetermines the current service location of the caller. The currentservice location may be associated with a telephone number following theNorth American Numbering Plan or the current service location may bedeclared by the caller but not associated with the normal telephonenumber identification of the caller. Some services require a currentservice location tied directly to a geographically-correct telephonenumber. Based on the current service location, the communicationsservice provider assigns a temporary, geographically-correct telephonenumber to the caller from a pool of available telephone numbers. Thecaller may receive calls placed to the temporary telephone numberthrough the caller's connection with the service provider and thetemporary telephone number may be included in calls placed by the callerto enable a recipient of a call to identify a location and/or anidentity of the caller.

In one example, a user places a call for emergency services (e.g., a9-1-1 call) using a device that does not include or otherwisecommunicate information sufficient to enable identification of theuser's location. A communications service provider handling the call foremergency services determines a location of the user and assigns atemporary, geographically-correct telephone number (e.g., a telephonenumber including a 202 area code for a call that was determined to havebeen made by a user located in the Washington, D.C. area, where the 202area code indicates that the user placed the call from the Washington,D.C. area) to the user who placed the call for emergency services. Thecommunications service provider routes the call with call informationincluding the temporary, geographically-correct telephone number. Thetraditional emergency services call handling system routes the call tothe appropriate public safety answering point (PSAP) based on thelocation associated with the temporary telephone number and establishesthe emergency services call between the user and the PSAP. The PSAP maybe able to determine the location of the user based on the locationassociated with the temporary telephone number. In the event that theemergency services call becomes disconnected, the PSAP may place areturn call to the temporary telephone number. The communicationsservice provider may receive the return telephone call placed to thetemporary telephone number and may be able to connect the returntelephone call to the user's device that does not include informationsufficient to enable identification of the user and/or the user'slocation. For instance, in the example above, the PSAP places a call tothe temporary telephone number over the PSTN, which is routed to thecommunications service provider associated with the disconnected user,and the communications service provider uses the temporary telephonenumber to identify the user (or user device) and routes the return callto that user.

FIG. 1 illustrates an example of a communications system 100 configuredto identify users when no or only ambiguous identity information isavailable. The communications system 100 includes a user communicationdevice 110, a communications service provider 120, a gateway 140, andone or more recipient communication devices 160 a, 160 b. Thecommunications service provider 120 and the gateway 140 facilitatecommunications between the user communication device 110 and the one ormore recipient communication devices 160 a, 160 b over data network 130and telephone network 150.

The user communication device 110 is configured to place a call to,and/or receive a call from, a recipient communication device 160 a, 160b after establishing a connection with communications service provider120. The user communication device 110 may be a landline or wirelinephone, a wireless phone, a cellular phone, a mobile personal digitalassistant (PDA) with embedded cellular phone technology, or a softphone, which is a telephone integrated into a computer system.Alternatively or additionally, user communication device may beintegrated into a client computer system.

The user communication device 110 does not include informationsufficient to enable identification of the user communication device 110and/or its location when communicating using the communications system100. For example, the user communication device 110 may be a voice overinternet protocol (VoIP) telephone that has no registered telephonenumber in the PSTN. In another implementation, the user communicationdevice 110 may be a device that establishes a connection withcommunications service provider 120 and communicates using a servicelevel identifier (e.g., a screen name). In this implementation, multipleusers of the communications system may communicate using usercommunication device 110, for example, by using user communicationdevice 110 to supply communications service provider 120 with a screenname and password. In addition, the user communication device 110 may bemobile such that the user communication device 110 may establish aconnection with communications service provider 120 at multipledifferent points in data network 130 located in multiple differentgeographic areas.

The communications service provider 120 is configured to establish aconnection with user communication device 110 to facilitatecommunications between the user communication device 110 and a recipientcommunication device 160 a, 160 b. In one implementation, thecommunications service provider 120 is a computer system configured toprovide online services to users, including data and/or voice services.The online services may include communications services, such as, forexample, one or more of e-mail services, instant messaging services,chat services, VoIP services, and traditional telephony services, andcontent provisioning services, such as, for example, Internet access(e.g., access to the World Wide Web) and/or access to online content(e.g., access to otherwise restricted or proprietary content).

The communications service provider 120 includes a user data store 122and a telephone number data store 124. The user data store 122 is one ormore locally or remotely accessible storage devices configured to storeuser records that include information related to registered users of thecommunications service provider 120. The user data store 122 may includeinformation necessary to perform authentication of users and/or usercommunication devices. For example, the user data store 122 may includea service level identifier (e.g., a screen name) and password for usersof the communications service provider 120. Alternatively oradditionally, the user data store 122 may include information toautomatically identify users when the user accesses the communicationsservice provider 120. For example, the user data store 122 may includedevice authentication information, such as an IP address or deviceidentifier of a particular user device, and/or may include informationnecessary to verify a cookie stored on, for example, the usercommunication device 110. The user data store 122 may also include usercontact information such as a physical address (i.e., street address,city, state, and zip code), an instant messaging screen name, an e-mailaddress, and/or telephone numbers (e.g., a cell phone number). In oneimplementation, the user data store 122 is configured to store a list ofphysical addresses where a user establishes a connection tocommunications service provider 120. The list of physical addresses mayinclude, for example, physical addresses previously submitted to thecommunications service provider 120 and/or physical addresses detectedby the communications service provider 120 where the user has previouslyconnected. The user data store 122 may also store a current physicaladdress where the user is using the user is communication device 110 toconnect to the communications service provider 120. In oneimplementation, the communications service provider 120 provides theuser communication device 110 with a location key to include withsubsequent communications after the current physical address of the useraccessing the communications service provider 120 with the usercommunication device 110 has been determined. The current physicaladdress may be explicitly supplied by the user, may be selected by theuser from the list of physical addresses associated with the user, maybe detected by the service provider, and/or may be automatically sent tothe service provider during operation of the user communication device110. The current physical address may be determined when the userestablishes a connection to the communications service provider 120using the user communication device 110 and may be updated to reflectchanges in the physical address of the user during the connection to thecommunications service provider 120. The current physical address may beused to identify the user and assign a temporary telephone number asdescribed below.

The telephone number data store 124 is one or more locally or remotelyaccessible storage devices configured to store telephone number recordsassociated with the communications service provider 120. The telephonenumber data store 124 may be included on the same storage device as theuser data store 122 or may be included on a different storage device. Inone implementation, the telephone number data store 124 includes a poolof geographically-correct telephone numbers for those physical serviceaddresses from which users may connect to the communications serviceprovider 120. For example, the telephone number data store 124 mayinclude at least one telephone number geographically-correct for each ofthe geographic areas the communications service provider 120 services.The telephone numbers included in the telephone number data store 124may be temporarily assigned to users connected to the communicationsservice provider 120 for purposes of identification and as return callnumbers (e.g., when the user communication device 110 is not associatedwith a telephone number) as described below.

The data network 130 is configured to enable communications betweendevices connected to the data network 130. For example, the data network130 may be configured to enable communications between the usercommunication device 110, the communications service provider 120, thegateway 140, and the recipient communication device 160 a. The datanetwork 130 may include, for example, one or more of the Internet, WideArea Networks (WANs), Local Area Networks (LANs), analog or digitalwired and wireless is telephone networks (e.g., a PSTN, IntegratedServices Digital Network (ISDN), and Digital Subscriber Line (xDSL)),radio, television, cable, satellite, and/or any other delivery ortunneling mechanism for carrying data or VoIP services. Data network 130may include multiple networks or subnetworks, each of which may include,for example, a wired or wireless data pathway.

The gateway 140 is configured to enable communications between datanetwork 130 and telephone network 150. For example, the gateway 140 mayconvert communications from data network 130 to communications suitablefor delivery over telephone network 150 and may convert communicationsfrom telephone network 150 to communications suitable for delivery overdata network 130. In one implementation, the gateway 140 is a PSTNgateway configured to convert communications from data network 130(e.g., IP packets) to communications suitable for delivery by a PSTN. Byenabling communications between data network 130 and telephone network150, the gateway 140 enables communications between a device connectedonly to data network 130 and a device connected only to the telephonenetwork 150.

The telephone network is configured to enable communications betweendevices connected to the telephone network 150. For example, thetelephone network may be configured to enable communications between thegateway 140 and the recipient communication device 160 b. The telephonenetwork 130 may include a circuit-switched voice network, apacket-switched data network, or any other network able to carry voicecommunications. For example, circuit-switched voice networks may includethe PSTN, and packet-switched data networks may include networks basedon the Internet protocol (IP), X.25, or Frame Relay, or other comparabletechnologies and may support voice using, for example, VoIP, or othercomparable protocols used for voice data communications.

The recipient communication devices 160 a, 160 b are configured toexchange communications with the user communication device 110. Forexample, the recipient communication devices 160 a, 160 b may beconfigured to receive communications from and/or send communications tothe user communication device 110. The recipient communication devices160 a, 160 b may be configured to initiate communication sessions withthe user communication device 110 and/or establish communicationsessions with the user communication device 110 initiated by the usercommunication device 110. For example, the recipient communicationdevices 160 a, 160 b may be configured to place calls to the usercommunication device 110 and/or receive calls from the usercommunication device 110. In one implementation, the recipientcommunication device 160 a may be connected to data network 130 and mayexchange communications with the user communication device 110 over thedata network 130. For example, the communications service provider 120may be configured to establish a communication session between the usercommunication device 110 and the recipient communication device 160 aand the recipient communication device 160 a may then exchangecommunications with the user communication device 110 directly over datanetwork 130 or may exchange communications with the user communicationdevice 110 through the communications service provider 120. In anotherimplementation, the recipient communication device 160 b may beconnected to the telephone network 150 and may exchange communicationswith the user communication device 110 utilizing the telephone network150, the gateway 140, and the data network 130. For example, thecommunications service provider 120 may be configured to establish acommunication session between the user communication device 110 and therecipient communication device 160 b and the recipient communicationdevice 160 b may then exchange communications with the usercommunication device 110 directly via the telephone network 150, gateway140, and data network 130 or may exchange communications with the usercommunication device 110 through the communications service provider120.

In one implementation, the user communication device 110 does notinclude information sufficient to enable identification of the userand/or its location and the user communication device 110 may notinclude an incoming telephone number. For example, the usercommunication device 110 may be a computer system executing a voicemessaging application. In this implementation, the communicationsservice provider 120 may be configured to assign the user communicationdevice 110 a temporary telephone number from the telephone number datastore 124 that is geographically correct for the user communicationdevice 110. The temporary telephone number may be included incommunications with the recipient communications device 160 a or 160 bsuch that the recipient communication device 160 a or 1160 b may be ableto determine the geographic location of the user communication device110 by analyzing the temporary telephone number. For example, thegeographic location of the user communication device 110 may bedetermined by comparing the temporary telephone number to a mapping oftelephone numbers to locations. In another implementation, the temporarytelephone number may be is assigned to the user communication device 110when the user communication device 110 establishes a connection with thecommunications service provider 120 and enable the user communicationdevice 110 to receive calls placed to the temporary telephone number. Inthis implementation, the communications service provider 120 isconfigured to receive a call placed to the temporary telephone number,determine that the user communication device 110 is currently associatedwith the temporary telephone number, and complete the call to the usercommunication device 110. For example, if a call between the usercommunication device 110 and the recipient communication device 160 a or160 b, the recipient communication device 160 a or 160 b may call theuser communication device 110 using the temporary telephone number.After the user communication device 110 disconnects from thecommunications service provider 120 or ends a communication session witha recipient communication device 160 a or 160 b, the communicationsservice provider 120 is configured to return the temporary telephone tothe pool of available telephone numbers.

In some implementations, the communications service provider 120 mayautomatically assign a temporary telephone number to the usercommunication device 110 when the communications service provider 120receives a request to engage in a communication session from the usercommunication device 110. For example, the communications serviceprovider 120 may be configured to determine that the type ofcommunication session requested by the user communication device 110would benefit from having a temporary telephone number. In this example,the communications service provider 120 automatically assigns atemporary telephone number to the user communication device 110 based onthe current physical address for the user communication device 110stored in user data store 122 or based on a location key included in thecommunication request from the user communication device 110. In anotherexample, the communications service provider 120 may determine that thetype of communication session requested by the user communication device110 would not benefit from having a temporary telephone number and wouldnot automatically assign a temporary telephone number.

FIG. 2 is a flow chart of a process 200 for determining a location keyfor a user device in a communications system. For convenience,particular components described with respect to FIG. 1 are referenced asperforming the process 200. However, similar methodologies may beapplied in other implementations where different components are used todefine the structure of the system, or where the functionality isdistributed differently among the components shown by FIG. 1.

The communications service provider 120 establishes a connection withuser communication device 110 (210). For example, the communicationsservice provider 120 may receive a request to establish a connectionfrom the user communication device 110. In one implementation, thecommunications service provider 120 may also receive a service levelidentifier (e.g., a screen name) and password from the usercommunication device 110. In this implementation, the communicationsservice provider 120 compares the service level identifier and passwordwith information included in the user data store 122 to authenticate theuser. If the communications service provider 120 determines that theservice level identifier and password are authentic, the communicationsservice provider 120 establishes an authenticated connection with theuser. If the communications service provider 120 determines that theservice level identifier and password are not authentic, thecommunications service provider 120 denies the connection request andsends an error message. In another implementation, the communicationsservice provider 120 may automatically identify and authenticate userswhen a user accesses the communications service provider 120 based oninformation included in user data store 122. For example, the user datastore 122 may include device authentication information, such as adevice identifier of a particular user device, and/or may includeinformation necessary to verify a cookie stored on, for example, theuser communication device 110. Additionally or alternatively, thecommunications service provider 120 may establish a connection withoutrequiring authentication and/or may maintain an established connectionwith a user communication device.

The communications service provider 120 determines a current location ofthe user communication device 110 (220). The communications serviceprovider 120 may determine the current location of the usercommunication device 110 while establishing a connection with the usercommunication device 110 or after establishing a connection with theuser communication device 110. For example, the communications serviceprovider 120 may receive an indication of the current location of theuser communication device 110. In one implementation, the user provideshis or her current location by explicitly providing his or her address(e.g., entering location in a text box provided in a graphical userinterface (GUI) of the communications service provider 120 or orallyreciting location in a voice communication). In another implementation,the communications service provider 120 maintains a list of potentiallocations for the user and the user selects a location from a listprovided by the communications service provider 120 (e.g., selecting alocation from a drop-down menu included in a GUI of the communicationsservice provider 120 or selecting a location using an IVR provided bythe communications service provider 120). In another example, thecommunications service provider 120 may detect the current location ofthe user communication device 110 and/or may automatically receive thelocation of the user communication device during operation of the usercommunication device 110. For example, the communications serviceprovider 120 may determine a current location of the user communicationdevice 110 based on an IP address the user communication device is usingto connect to the data network 130, may receive global positing system(GPS) data indicating an address of the user communication device 110,and/or may determine a current location using triangulation from aplurality of wireless communication points the user communication device110 is using to access the data network 130. In another example, thelocation may be determined from radios connected to the usercommunication device 110. In this example, the location may beexplicitly determined from radios connected to the user communicationdevice 110, may be indirectly determined from radios connected to theuser communication device 110, or derived from radios connected to theuser communication device 110. The location determined may be a locationof the user and/or a location of the user device.

The communications service provider 120 determines a location key forthe user communication device 110 based on the current location of theuser communication device 110 (230). The location key is an identifierused by the communications service provider 120 to identify a particularlocation. The communications service provider 120 may generate thelocation key by applying an algorithm to the current location of theuser or by accessing a location key for the current location of the userfrom a table stored locally or remotely from the communications serviceprovider 120 or may randomly generate a unique key to associate with thelocation. The location key may enable the communications serviceprovider 120 or another entity to determine the location associated withthe location key and may be directly used in routing and processingcommunications.

The communications service provider 120 stores and/or sends the locationkey to the user communication device 110 (240). For example, the serviceprovider may store the location key for the current location of the userin the user data store 122 associated with the user's records. In thisexample, the communications service provider 120 may retrieve thelocation key for the user when needed (e.g., when the user places acall). Additionally or alternatively, the communications serviceprovider 120 may send the location key to the user communication device110. The user communication device 110 may store the location key andinclude the location key in subsequent communications sent by the usercommunication device 110. By including the location key incommunications sent from the user communication device 110, thecommunications service provider 120 or another system or service may beable to request access to the location information associated with thelocation key to determine the location from which the communicationsoriginated.

FIG. 3 is a flow chart of a process 300 for assigning a temporarytelephone number to a user device in a communications system. Forconvenience, particular components described with respect to FIG. 1 arereferenced as performing the process 300. However, similar methodologiesmay be applied in other implementations where different components areused to define the structure of the system, or where the functionalityis distributed differently among the components shown by FIG. 1.

The communications service provider 120 establishes a connection withthe user communication device 110 (310) and determines a currentlocation of the user communication device 110 (320). Establishing aconnection to and determining a current location of the usercommunication device 110 have been described above with respect to FIG.2.

The communications service provider 120 assigns a temporary telephonenumber to the user communication device 110 based on the currentlocation of the user communication device 110 (330). For example, theuser communication device 110 may not have a registered telephone numberin the PSTN and may not be otherwise configured to receive calls placedto a telephone number. In one implementation, the communications serviceprovider 120 maintains a pool of telephone numbers associated with thecommunications service provider 120. The pool of telephone numbers may,for example, include at least one telephone number that isgeographically correct for each of the geographic areas serviced by theservice provider. The communications service provider 120 may beconfigured to temporarily assign one of the telephone numbers includedin the pool of telephone numbers to the user communication device 110.For example, the communications service provider 120 may associate theuser with the telephone number in electronic storage such that callsreceived at the telephone number will be identified as calls placed tothe user.

The communications service provider 120 receives a call for thetemporary telephone number (340). For example, the communicationsservice provider 120 receives a call from a recipient communicationdevice 160 a or 160 b through one or more of data network 130, gateway140, and telephone network 150.

The communications service provider 120 completes the call to the usercommunication device 110 (350). For example, the communications serviceprovider 120 provides the communications sent to the temporary telephonenumber to the user communication device 110 through the connection overdata network 130 previously established between the communicationsservice provider 120 and the user communication device 110. In thisimplementation, the user communication device 110 can receive callsplaced to the temporary telephone number even though the usercommunication device 110 does not have an incoming telephone number. Thecommunications service provider 120 enables the user communicationdevice 110 to participate in the call as if the temporary telephonenumber was the incoming telephone number for the user communicationdevice 110.

The communications service provider 120 receives an indication that theuser communication device 110 has disconnected from the communicationsservice provider 120 (360). For example, the communications serviceprovider 120 receives an indication that the connection between thecommunications service provider 120 and the user communication device110 is no longer available (e.g., the user has logged off or otherwiseended the connection).

In response to receiving the indication that the user communicationdevice 110 has disconnected, the communications service provider 120returns the temporary telephone number to the pool of availabletelephone numbers (370). For example, the communications serviceprovider 120 may disassociate the temporary telephone number from theuser communication device 110 and designate the telephone number asavailable in electronic storage. The communications service provider 120may assign the temporary telephone to another user communication deviceconnected to the communications service provider 120 such that the otheruser communication device will receive calls placed to the temporarytelephone number.

FIG. 4 is a flow chart of a process 400 for assigning a temporarytelephone number to a user device in a communications system. Forconvenience, particular components described with respect to FIG. 1 arereferenced as performing the process 400. However, similar methodologiesmay be applied in other implementations where different components areused to define the structure of the system, or where the functionalityis distributed differently among the components shown by FIG. 1.

The communications service provider 120 receives a request to establisha communication session from the user communication device 110 (410).For example, the communications service provider 120 may receive arequest from the user communication device 110 to establish acommunication session with the recipient communication device 160 a or160 b. The user communication device 110 may have previously establisheda connection with the communications service provider 120 or the requestto establish a communication session may be an initial communication tothe communications service provider 120. The request may be to establisha voice communication session and/or a data communication session. Forexample, the request may be a request to place a call to a VoIPtelephone, a request to place a call to a telephone connected to thePSTN, or a request to establish an instant messaging session.

The communications service provider 120 determines whether the type ofcommunication session would benefit from a temporary telephone number(420). In one implementation, the communications service provider 120may analyze the communication session request to determine whether atemporary telephone number would be beneficial. For example, thecommunications service provider 120 may determine whether the type ofcommunication session would benefit from having a telephone number withwhich the recipient may be able to determine the location of the user orplace a return call to the user. The service provider, for example, mayassign a temporary telephone number if the request is to place a call toa telephone connected to the PSTN, but may not assign a temporarytelephone number if the request is to establish an instant messagingsession. In another implementation, the communications service provider120 may determine to assign a temporary telephone number to somerequests to establish a communication session of a particular typo, butnot other requests to establish a communication session of that type.For example, the communications service provider 120 may determine notto assign a temporary telephone number for a request to place a call toa telephone of a friend connected to the PSTN, but may determine toassign a temporary telephone number for a request to place a call to anemergency services provider connected to the PSTN. In a furtherimplementation, the communications service provider 120 may determine toassign a temporary telephone number for all requests to establish acommunication session.

The communications service provider 120 determines a current location ofthe user communication device 110 (430). The communications serviceprovider 120 may determine a current location of the user communicationdevice as described above with respect to FIG. 2. Additionally oralternatively, the communications service provider 120 may accessinformation identifying the current location of the user communicationdevice 110 previously determined. For example, in one implementation,the communications service provider 120 may retrieve a current locationof the user communication device 110 from electronic storage. In anotherimplementation, the communications service provider 120 may access alocation key associated with the user communication device 110. Forexample, the communications service provider 120 may retrieve a locationkey associated with the user communication device 110 from electronicstorage or may access a location key associated with the usercommunication device 110 included in communications sent from the usercommunication device 110 to the communications service provider 120(e.g., the location key may be included in the request to establish thecommunication session).

The communications service provider 120 assigns a temporary telephonenumber to the user communication device 110 based on the currentlocation of the user device (440). The temporary telephone number may begeographically correct for the user communication device 110 and thecommunications service provider 120 may assign the temporary telephonenumber to the user communication device 110 as described above withrespect to FIG. 3.

The communications service provider 120 establishes the communicationsession requested by the user communication device 110 including thetemporary telephone number in information used to establish thecommunication session (450). For example, the temporary telephone numbermay be included in call set up information as the call back telephonenumber in a telephone call and may be used to determine the identityand/or location of the user communication device 110. The temporarytelephone number may also be used in establishing the communicationsession. For example, if the user communication device 110 places a callto emergency services, the temporary telephone number is used todetermine the location of the user communication device 110 and routethe call to the appropriate public safety answering point for thelocation of the user communication device 110.

The communications service provider 120 receives an indication that thecommunication session has ended (460). For example, the communicationsservice provider 120 receives an indication that the user communicationdevice 110 has ended the communication session or that the communicationsession has been otherwise ended. In one implementation, the indicationenables the communications service provider 120 to determine whether thecommunication session ended due to the communication session completingsuccessfully or the communication session ended due to an error.

The communications service provider 120 returns the temporary telephonenumber to the pool of available telephone numbers (470). Thecommunications service provider 120 may return the temporary telephonenumber to the pool of available telephone numbers immediately uponreceiving the indication that the communication session has ended or maywait a threshold amount of time after receiving the indication that thecommunication session prior to returning the temporary telephone numberto the pool of available telephone numbers. Waiting a threshold amountof time prior to returning the temporary telephone number to pool ofavailable numbers may enable the communication session recipient toplace a return call to the user communication device 110 when thecommunication session ends due to an error. In one implementation, thecommunications service provider 120 immediately returns the temporarytelephone to the pool of available telephone numbers when the indicationthat the communication session has ended indicates that thecommunication session ended due to the communication session completingsuccessfully and waits a threshold amount of time prior to returning thetemporary telephone to the pool of available telephone numbers when theindication that the communication session has ended indicates that thecommunication session ended due to an error. In another implementation,the communications service provider 120 may wait a threshold amount oftime for all communication sessions or may wait a threshold amountdepending on the type of communication session. For example, thecommunications service provider 120 may wait a threshold amount of timefor all calls placed to emergency services. In another implementation,the communications services provider may wait until the user hasdeclared a new location associated with the user communication device110. The communications service provider 120 may return the temporarytelephone number to the pool of available telephone numbers as discussedabove with respect to FIG. 3. Once the communications service provider120 returns the temporary telephone number to the pool of availabletelephone numbers, the temporary telephone number may be assigned to theuser communication device 110 in a subsequent communication sessionrequest or may be assigned to a different user communication device in asubsequent communication session request.

FIG. 5 illustrates an example of a communications system 500 configuredto handle emergency services communications. The communications system500 includes a user communication device 510, a communications serviceprovider 520, an enhanced emergency services provider 540, an emergencyservices gateway 550, a selective router 560, a public safety answeringpoint (PSAP) 570, and an automatic location identification database 580.The data network 530 facilitates communications between the usercommunication device 510, the communications service provider 520, theenhanced emergency services provider 540, and the emergency servicesgateway 550.

The user communication device 510 and the data network 530 areconfigured in a manner similar to user communication device 110 and datanetwork 130 described above with respect to FIG. 1.

The communications service provider 520 is configured in a mannersimilar to communications service provider 120 described above withrespect to FIG. 1. More specifically, the communications serviceprovider 520 includes a server 522, an emergency services proxy server524, a user data store 526, and a telephone number data store 528. Theserver 522 may be configured to communicate with the emergency servicesproxy server 524 and access the user data store 526 and the telephonenumber data store 528. The server 522 may be configured to controloperations of the communications service provider 520 similar to theoperations described above with respect to communications serviceprovider 120.

The emergency services proxy server 524 is configured to handle requestsfor a communication session with an emergency services provider receivedby communications service provider 520. For example, the emergencyservices proxy server 524 is configured to handle a 9-1-1 call placed bythe user communication device 510. The emergency services proxy server524 may be configured to communicate with the server 522 and access theuser data store 526 and the telephone number data store 528. Theemergency services proxy server 524 is configured to handle an emergencyservices call in a manner similar to communications service provider 120described above with respect to FIG. 1. In one implementation, when thecommunications service provider 520 receives a request from a userdevice to establish a communication session with an emergency servicesprovider, the emergency services proxy server 524 may be configuredhandle the request. In this implementation, the emergency services proxyserver 524 may be configured to assign a temporary,geographically-correct telephone number to the user device requesting toestablish a communication session with an emergency services provider asdiscussed above, access a previously stored key or determine a locationkey for the user device, and relay the request to enhanced emergencyservice provider 540 including the temporary telephone number and thelocation key. For example, user communication device 510 may be a VoIPendpoint without a registered telephone number in the PSTN and may placean emergency services call to communications service provider 520. Theemergency services proxy server 524 may assign a temporary,geographically-correct telephone number on the PSTN to and obtain alocation key for the user communication device 510. The emergencyservices proxy server 524 may relay the call to the enhanced emergencyservice provider 540 including the temporary telephone number and thelocation key such that the emergency service call may be routed to anappropriate PSAP and the user communication device 510 may be able toreceive a return call from the PSAP at the temporary telephone number ifthe initial call becomes disconnected due to an error.

The user data store 526 and the telephone number data store 528 areconfigured to operate in a manner similar to the user data store 122 andthe telephone number data store 124 described above.

The server 522 and the emergency services proxy server 524 may includeone or more local or remote electronic systems. The user data store 526and the telephone number data store 528 may include one or more locallyor remotely accessible storage devices.

The enhanced emergency services provider 540 is configured to facilitatehandling of a request to establish a communication session with anemergency services provider by enabling interoperability ofnon-traditional communication networks with established, traditionalPSTN-based emergency services. For example, the enhanced emergencyservices provider 540 may be configured to operate as set forth in theNational Emergency Number Association (NENA) technical specificationsfor connecting VoIP callers to emergency services. [See Interim VoIPArchitecture for Enhanced 9-1-1 Services (i2),NENA_(—)08-011_V1_(—)12-06-05](“NENA Guidelines”). The enhancedemergency services provider 540 includes an emergency call server 542, apositioning server 544, a user data store 546, and a routing database548.

The emergency call server 542 is configured to receive a request toestablish an emergency services communication session from thecommunications service provider 520. The emergency call server 542 maybe configured to communicate with the positioning server 544 to receiverouting instructions and query keys to include with its furthercommunications. In one implementation, the emergency call server 542sends the location key it received from the communications serviceprovider 520 to the positioning server 544 and receives back theemergency services routing number and the emergency services query keyneeded to relay the call setup to the proper emergency services gateway550. The so emergency call server 520 may be a call server/proxy serveror Routing Proxy/Redirect Server described in the NENA guidelines andthe location key may be a location key described in the NENA Guidelines.The emergency services routing number may be an Emergency ServicesRouting Number (ESRN) as described in the NENA Guidelines and theemergency services query key may be an Emergency Services Query Key(ESQK) described in the NENA Guidelines.

The positioning server 544 is configured to update the data stores ofthe enhanced emergency services provider 540 and determine call routinginformation based on the temporary telephone number and location keyincluded in the emergency services communication request. Thepositioning server 544 may be configured to communicate with theemergency call server 542 and access the user data store 546 and therouting database 548. In one implementation, the positioning server 544determines routing information for the emergency services call based onthe temporary telephone number and the location key included in theemergency services call. The positioning server 544 may allocate an ESQKand associate the ESQK with location information for the user such thatthe positioning server 544 may provide location information for the userwhen later presented with the ESQK. The positioning server 544 mayprovide the routing information to the emergency call server 542 suchthat the emergency call server 542 may update the call information andrelay the call to the appropriate gateway. The positioning server 544may be a VoIP Positioning Center and the routing information may includean Emergency Services Routing Number and Emergency Services Query Key asdescribed in the NENA Guidelines. The positioning server 544 may alsocommunicate with the automatic location identification database 580 toprovide location and call back number information to PSAP 570 asdescribed below.

The user data store 546 is configured to store a current location and/ortelephone number of a user device requesting to establish acommunication session with an emergency services provider. For example,the user data store 546 may be configured to operate in a manner similarto the user data store 526 described above or the user data store 546may be configured to obtain user information from the user data store526.

The routing database 548 is configured to store data necessary todetermine routing information for establishing a communication sessionwith an emergency services provider. In one implementation, the routingdatabase 548 includes data identifying an emergency services zone androuting information for that emergency services zone for a receivedlocation. For example, the routing database 548 may include a tablemapping locations with emergency services zones and correspondingrouting information. The routing database 548 may be an ESZ RoutingDatabase as described in the NENA Guidelines.

The emergency call server 542, the positioning server 544, the user datastore 546, and the routing database 548 may include one or more local orremote electronic systems and/or one or more locally or remotelyaccessible storage devices.

The emergency services gateway 550 is configured to enablecommunications between data network 530 and a PSAP. For example, theemergency services gateway 550 may convert communications from datanetwork 530 to communications suitable for delivery to a PSAP. In oneimplementation, the emergency services gateway 550 may use routinginformation provided by enhanced emergency services provider 540 toselect an appropriate selective router to route an emergency servicescall to an appropriate PSAP. The emergency services gateway 550 mayenable an emergency services call to be routed to a PSAP over the PSTN.By enabling communications between data network 530 and a PSAP, thegateway 550 enables a device connected only to data network 530 tosuccessfully complete an emergency services call. The emergency servicesgateway 550 may be an emergency services gateway as described in theNENA Guidelines.

The selective router 560 is configured to relay an emergency servicescall to an appropriate PSAP (e.g., PSAP 570). For example, the selectiverouter 560 may relay an emergency services call from the usercommunication device 510 to the PSAP 570 based on the routinginformation provided by the enhanced emergency services provider 540.The selective router 560 may be a selective router as described in theNENA Guidelines.

The PSAP 570 is configured to receive an emergency services call andinitiate the rendering of emergency services. For example, the PSAP 570may receive an emergency services call originated by the usercommunication device 510 and initiate the rendering of emergencyservices to the user using the user communication device 510 (e.g.,dispatching police, medical, or fire assistance). The PSAP 570 may be aPSAP as described in the NENA Guidelines.

The automatic location identification database 580 is configured toprovide location and call back number information to the PSAP 570. Theautomatic location identification database 580 may include one or morelocal or remote electronic systems and/or one or more locally orremotely accessible storage devices. When the PSAP 570 receives anemergency services call, the PSAP 570 may, for example, communicate withthe automatic location identification database 580 to obtain locationand call number data related to the emergency services call. In oneimplementation, the PSAP 570 requests location and call back numberinformation from the automatic location identification database 580 whenthe PSAP 570 receives an emergency services call and the automaticlocation identification database 580, in turn, requests the informationfrom the enhanced emergency services provider 540. In thisimplementation, the positioning server 544 of the enhanced emergencyservices provider 540 accesses the information from the user data store546 and provides the information to the automatic locationidentification database 580. Based on the information provided by theautomatic location identification database 580, the PSAP 570 may be ableto determine a location related to an emergency services call and placea return call to user device originating an emergency services call ifthe call becomes disconnected. The automatic location identificationdatabase 580 may be an Automatic Location Identification. Database asdescribed in the NENA Guidelines.

FIG. 6 is a flow chart of a process 600 for handling an emergencyservices call in a is communications system. For convenience, particularcomponents described with respect to FIG. 5 are referenced as performingthe process 600. However, similar methodologies may be applied in otherimplementations where different components are used to define thestructure of the system, or where the functionality is distributeddifferently among the components shown by FIG. 5.

The communications service provider 520 receives an emergency servicescall from the user communication device 510 (610). For example, the usercommunication device 510 may be a VoIP endpoint without a registeredtelephone number in the PSTN and the communications service provider 520may receive a 911 call placed by the user communication device 510. Inone implementation, the communications service provider 520 receives theemergency services call and directs the call to the emergency servicesproxy server 524 for processing.

The communications service provider 520 determines a current location ofthe user communication device 510 (620). The communications serviceprovider 520 may determine a current location of the user communicationdevice 510 in a manner similar to the communications service provider120 as described above with respect to FIGS. 1-4.

The communications service provider 520 assigns a temporary telephonenumber to and obtains a location key for the user communication device510 based on the current location of the user communication device 510(630). For example, the emergency services proxy server 524 accessesinformation identifying the current location of the user communicationdevice 510, accesses available telephone number data from the telephonenumber data store 528, and assigns a temporary telephone number to theuser communication device 510. In one implementation, the emergencyservices proxy server 524 assigns a telephone number that isgeographically correct for the user communication device 510. Forexample, the emergency services proxy server 524 may determine theemergency services zone that corresponds to the current location of theuser communication device 510 and retrieve an available telephone numbercorresponding to that emergency services zone from the telephone numberdata store 528. The emergency services proxy server 524 may storeinformation reflecting the assignment of a temporary telephone number inthe user data store 526 and/or the telephone number data store 528.

The emergency services proxy server 524 also obtains a location key forthe user communication device 510. In one implementation, the emergencyservices proxy server 524 generates a location key for the usercommunication device 510 based on the current location of the userdevice. In another implementation, the emergency services proxy server524 accesses a previously stored location key associated with the usercommunication 510 from electronic storage. In a further implementation,the user communication device 510 includes a location key in informationincluded in the emergency services call and the emergency services proxyserver 524 analyzes the emergency services call to obtain the locationkey. The emergency services proxy server 524 may store informationidentifying the location key for the user communication device 510 inthe user data store 526 and/or the telephone number data store 528.

The communications service provider 520 relays the emergency servicescall to the enhanced emergency services provider 540 (640). For example,the emergency services proxy server 524 updates the emergency servicescall information to include the temporary telephone number and thelocation key and sends the updated emergency services call to theenhanced emergency services provider 540. The enhanced emergencyservices provider 540 receives the updated emergency services call forprocessing.

The enhanced emergency services provider 540 determines routinginformation for the emergency services call based on the temporarytelephone number and/or location key (650). For example, the positioningserver 544 may access information stored in routing database 548 todetermine appropriate routing information for the emergency servicescall based on the temporary telephone number and/or location key. In oneimplementation, the positioning server 544 analyzes the temporarytelephone number to determine the emergency services zone thatcorresponds to the temporary telephone number. Based on the determinedemergency services zone, the positioning server 544 accesses routinginformation for the determined emergency services zone from the routingdatabase 548. In another implementation, the positioning server 544analyzes the location key to determine the emergency services zone andaccesses routing information for the determined emergency services zonefrom the routing database 548. In a further implementation, thepositioning server 544 utilizes both the temporary telephone number andthe location key to determine routing information for the emergencyservices call. The positioning server 544 may also determine routinginformation based on location information stored in the user data store546 or otherwise included in the call information. The enhancedemergency services provider may store the call information, includingthe temporary telephone number and location key, in the user data store546.

The enhanced emergency services provider 540 routes the emergencyservices call to the appropriate PSAP (660). For example, the emergencycall server 542 may receive the call information and routing informationfrom the positioning server 544 and may send the emergency services callto the PSAP 570. In one implementation, the emergency call server 542sends the emergency services call with updated routing information tothe emergency services gateway 550, which sends the emergency servicescall to the selective router 560.

The selective router 560 routes the emergency services call to the PSAP570. The automatic location identification database 580 provides thePSAP 570 with location information and a call back number (670). In oneimplementation, the automatic location identification database 580communicates with the enhanced emergency services provider 540 to obtainthe location information and the call back number. In anotherimplementation, the automatic location identification database 580provides the PSAP 570 with location information and a call back numberstored in the automatic location identification database 580. Afterreceiving information from the automatic location identificationdatabase 580, the PSAP 570 may have the current location of the usercommunication device 510 and a number with which the PSAP 570 may placea return call to the user communication device 510 in the event that theinitial call becomes disconnected.

FIG. 7 is a flow chart of a process 700 for handling an emergencyservices call in a communications system. For convenience, a usercommunication device, a communications service provider, and a publicsafety answering point are referenced as performing the process 700.However, similar methodologies may be applied in other implementationswhere different components are used to define the structure of thesystem, or where the functionality is distributed differently among thecomponents. For example, the process 700 may be performed by thecomponents described with respect to FIG. 5 and the communicationsservice provider 520 and the enhanced emergency service provider 540 maycollectively perform the processes shown as being performed by theservice provider in FIG. 7.

The user communication device initiates a call for emergency services(705). For example, the user communication device may be a VoIPtelephone that has no registered telephone number in the PSTN, a usermay dial 9-1-1 using the VoIP telephone, and the VoIP telephone mayplace an emergency services call in a format used by VoIP.

The communications service provider receives the call from the usercommunication device (710). For example, the communications serviceprovider may be a VoIP service provider configured to handle callsplaced by the user communication device and receives the emergencyservices call from the user communication device.

The communications service provider determines a location of the usercommunication device (715). The communications service provider maydetermine a location of the user communication device in a mannersimilar to the communications service provider 120 or the communicationsservice provider 520 described above with respect to FIGS. 1-6.

The communications service provider accesses a pool of temporarytelephone numbers (720). For example, the communications serviceprovider may maintain, in electronic storage, a pool of temporarytelephone numbers with which the communications service provider mayassociate with user communication devices and access the pool oftemporary telephone numbers from the electronic storage.

The communications service provider selects a temporary telephone numberfrom the pool based on the determined location of the user communicationdevice (725). For example, the communications service provider mayanalyze the pool of temporary telephone numbers and select a temporarytelephone number that corresponds to the location of the usercommunication device. In one implementation, the communications serviceprovider may store location information for each of the temporarytelephone numbers in the pool of temporary telephone numbers and comparethe location of the user communication device with the locationinformation to determine a match. In another implementation, thecommunications service provider may associate each service address ithas knowledge of with a block of temporary telephone numbers and pickone from the block when presented with a corresponding location.

The communications service provider associates the selected temporarytelephone number with the user communication device (730). For example,the communications service provider may store information in electronicstorage indicating that the temporary telephone number is associatedwith the user communication device. In one implementation, when thecommunications service provider receives a call placed by the usercommunication device, the communications service provider accessesinformation stored for the user communication device and handles thecall from the user communication device based on the temporary telephonenumber associated with the user communication device. In anotherimplementation, when the communications service provider receives a callplaced to a temporary telephone number, the communications serviceprovider accesses information stored for the temporary telephone numberand handles the call to the temporary telephone number based on the usercommunication device associated with the temporary telephone number.

The communications service provider routes the call for emergencyservice to the PSAP providing the temporary telephone number in the callinformation (735). For example, the communications service provider maydetermine an appropriate PSAP to which to route the emergency servicescall based on the location of the user communication device and routethe call according to routing information for the appropriate PSAP. Thecommunications service provider includes the temporary telephone numberin call information associated with the call. The call information thatincludes the temporary telephone is sufficient to identify the temporarytelephone number. For example, the call information may be informationused for routing the call and/or information used in determining atelephone number associated with a call for caller identification. Inone implementation, the communications service provider may route thecall to an emergency service gateway providing the temporary telephonenumber in call information associated with the call. In thisimplementation, the emergency services gateway may be configured toroute the call to the appropriate PSAP based on the call information.

The PSAP receives the call and call information associated with thetemporary telephone number (740). The temporary telephone number is ageographically-correct telephone number for the caller 705 and may beused to call back the caller. For example, the PSAP receives the calland establishes communications with the user communication device.

The PSAP determines the location of the user communication device basedon the temporary telephone number (745). For example, the PSAP accessesthe call information, provides identifying information to another device(e.g., an automatic location identification database), and receiveslocation information and the temporary telephone number from the otherdevice. Determining the location based on the temporary telephone numbermay enable the PSAP to verify the location of the user and dispatchemergency services to the user without requiring the user to identify alocation because the location was previously identified and associatedwith the temporary telephone number. For example, determining thelocation based on the temporary telephone number may enable the PSAP todispatch emergency services to the user using the user communicationdevice in situations where the call becomes disconnected prior to theuser identifying the user's location to an emergency services operator.

The PSAP determines that the call for emergency services has becomedisconnected (750). For example, the PSAP may determine that theconnection with the user communication device is no longer establishedbecause the user communication device ended the call or a communicationerror occurred. In one implementation, the PSAP may determine that thecall has become disconnected when the user communication device fails tosend new communications for a threshold period of time.

The PSAP initiates a return call to the temporary telephone number(755). For example, the PSAP places a call using information sufficientto route the call to a device associated with the temporary telephonenumber. In one implementation, the PSAP places a call to the temporarytelephone number over the PSTN. In this implementation, the usercommunication device may be a VoIP telephone that has no registeredtelephone number in the PSTN and may not be able to directly receive acall placed from the PSAP.

The communications service provider receives the return call placed tothe temporary telephone number (760). For example, the communicationsservice provider may include a device (e.g., a gateway) associated withthe temporary telephone number in the PSTN and the device may receivethe return call.

The communications service provider determines that the temporarytelephone number is associated with the user communication device (765).For example, the communications service provider may access informationin electronic storage associated with the temporary telephone number andanalyze the information to determine that the user communication deviceis currently associated with the temporary telephone number.

The communications service provider routes the return call to the usercommunication device (770). For example, the communications serviceprovider accesses information indicating a method of communicating withthe user communication device and the routes the emergency services callto the user communication device based on the method of communicatingwith the user communication device. In one implementation, the call tothe temporary telephone number may be placed over the PSTN and the usercommunication device may be a VoIP telephone that has no registeredtelephone number in the PSTN. In this implementation, the communicationsservice provider may receive the call placed over the PSTN and may routethe call to the IP address associated with the VoIP telephone over an IPnetwork.

The user communication device receives the return call initiated by thePSAP (775). For example, the user communication device receives the calland establishes communications with the PSAP. When the usercommunication device does not communicate in the manner of a traditionalPSTN telephone, association of the temporary telephone number maintainedby the communications service provider with the user communicationdevice placing a call for emergency services may enable the usercommunication device to receive comparable emergency service to atraditional PSTN telephone by utilizing the traditional emergencyservices technology based on the PSTN.

The described systems, methods, and techniques may be implemented indigital electronic circuitry, computer hardware, firmware, software, orin combinations of these elements. Apparatus embodying these techniquesmay include appropriate input and output devices, a computer processor,and a computer program product tangibly embodied in a machine-readablestorage device for execution by a programmable processor. A processembodying these techniques may be performed by a programmable processorexecuting a program of instructions to perform desired functions byoperating on input data and generating appropriate output. Thetechniques may be implemented in one or more computer programs that areexecutable on a programmable system including at least one programmableprocessor coupled to receive data and instructions from, and to transmitdata and instructions to, a data storage system, at least one inputdevice, and at least one output device. Each computer program may beimplemented in a high-level procedural or object-oriented programminglanguage, or in assembly or machine language if desired; and in anycase, the language may be a compiled or interpreted language. Suitableprocessors include, by way of example, both general and special purposemicroprocessors. Generally, a processor will receive instructions anddata from a read-only memory and/or a random access memory.

Storage devices suitable for tangibly embodying computer programinstructions and data include all forms of non-volatile memory,including by way of example semiconductor memory devices, such asErasable Programmable Read-Only Memory (EPROM), Electrically ErasableProgrammable Read-Only Memory (EEPROM), and flash memory devices;magnetic disks such as internal hard disks and removable disks;magneto-optical disks; and Compact Disc Read-Only Memory (CD-ROM). Anyof the foregoing may be supplemented by, or incorporated in,specially-designed ASICs (application-specific integrated circuits).

It will be understood that various modifications may be made withoutdeparting from the spirit and scope of the claims. For example, atemporary telephone number and/or location key may be assigned to a usercommunication device to mask the identity and/or location of the usercommunication device, rather than provide this information. In addition,advantageous results still could be achieved if steps of the disclosedtechniques were performed in a different order and/or if components inthe disclosed systems were combined in a different manner and/orreplaced or supplemented by other components. Accordingly, otherimplementations are within the scope of the following claims.

1-35. (canceled)
 36. A computer-implemented method for providing atemporary phone number, comprising the following operations performed byone or more processors: receiving, from a device of a requester, arequest for a temporary phone number; determining location informationfor the device of the requester of the temporary phone number; andstoring the location information and call back information for thetemporary phone number in an emergency services database based on thedetermined location information.
 37. The method of claim 36, furthercomprising: assigning the requester a geographically-correct telephonenumber as the temporary phone number.
 38. The method of claim 36,further comprising: routing a call to a public safety answering pointbased on the location of the requester.
 39. The method of claim 36,wherein the user device is a mobile phone.
 40. The method of claim 36,further comprising: storing an association between the temporarytelephone number and a service level identifier for the requester. 41.The method of claim 36, further comprising: automatically assigning thetemporary phone number in response to a communication request.
 42. Anon-transitory computer-readable medium storing instructions that, whenexecuted by at least one processor, perform a plurality of operationsfor providing a temporary phone number, the operations comprising:receiving, from a device of a requester, a request for a temporary phonenumber; determining location information for the device of the requesterof the temporary phone number; and storing the location information andcall back information for the temporary phone number in an emergencyservices database based on the determined location information.
 43. Thecomputer-readable medium of claim 42, the operations further comprising:assigning the requester a geographically-correct telephone number as thetemporary phone number.
 44. The computer-readable medium of claim 42,the operations further comprising: routing a call to a public safetyanswering point based on the location of the requester.
 45. Thecomputer-readable medium of claim 42, wherein the user device is amobile phone.
 46. The computer-readable medium of claim 42, theoperations further comprising: storing an association between thetemporary telephone number and a service level identifier for therequester.
 47. The computer-readable medium of claim 42, the operationsfurther comprising: automatically assigning the temporary phone numberin response to a communication request.
 48. A computer system forproviding a temporary phone number, the system comprising: acommunication interface that receives, from a device of a requester, arequest for a temporary phone number; a computer-readable medium thatstores instructions for determining location information for the deviceof the requester of the temporary phone number and stores the locationinformation and call back information for the temporary phone number inan emergency services database based on the determined locationinformation; and a processor for executing the instructions.
 49. Thecomputer system of claim 48, the instructions further comprisinginstructions for assigning the requester a geographically-correcttelephone number as the temporary phone number.
 50. The computer systemof claim 48, the instructions further comprising instructions forrouting a call to a public safety answering point based on the locationof the requester.
 51. The computer system of claim 48, wherein the userdevice is a mobile phone.
 52. The computer system of claim 48, theinstructions further comprising instructions for storing an associationbetween the temporary telephone number and a service level identifierfor the requester.
 53. The computer system of claim 48, the instructionsfurther comprising instructions for automatically assigning thetemporary phone number in response to a communication request.